如何调用父类的构造函数?
视频锁定
{$ currentTime | date:'mm:ss' $}
{$ timeLeft | date:'mm:ss' $}
如果想要在子类的构造函数中调用父类的构造函数该怎么办呢?
调用父类构造函数的唯一方法是调用super()
。
它看起来会像下面这样:
public class Duck extends Animal {
int size;
public Duck{int newSize) {
super(); //调用父类的构造函数
size = newSize;
}
}
小孩能够在父母之前出生吗?
如果你把父类想象成子类的父母,那就可以看出来谁是先存在的。父类的部分必须在子类创建完成之前就必须完整地成型。记住,子类对象可能需要动用到从父类继承下来的东西,所以那些东西必须要先完成。父类的构造函数必须在子类的构造函数之前结束。
每个子类的构造函数会立即调用父类的构造函数,如此一路往上直到Object
,等到Object
完成后会回去执行Animal
的,然后等Animal
完成后又回去执行Hippo
剩下的构造函数。这是因为:对super()
的调用必须是构造函数的第一个语句。
在线练习
{$ activeFileHint $}